home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Info-Mac 4
/
Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso
/
Development
/
Source
/
DBL Pascal Library
/
CRC
/
CRC.p
Wrap
Text File
|
1992-12-03
|
614b
|
31 lines
unit CRC;
interface
function CRC16 (data: Ptr; length: Size): Integer;
implementation
function CRC16 (dataPtr: Ptr; dataLength: Size): Integer;
type
SignedBytePtr = ^SignedByte;
var
result, i, j: Integer;
aByte: SignedByte;
begin
result := 0;
for i := 1 to dataLength do
begin
aByte := SignedBytePtr(dataPtr)^;
data := Ptr(ORD(dataPtr) + SIZEOF(SignedByte));
result := BXOR(result, BSL(aByte, 8));
for j := 1 to 8 do
if BTST(result, 15) then
result := BXOR(BSL(result, 1), $1021)
else
result := BSL(result, 1);
end;
CRC16 := result;
end;
end.